# Pydantic：用于数据验证和序列化的 Python 模型库
# 核心用途：定义请求体、响应体和其他数据模型，提供了强大的类型检查和自动文档生成功能
import uvicorn
from fastapi import FastAPI,Form
from fastapi.params import Query
from pydantic import BaseModel, Field
from typing import Annotated
app= FastAPI()

# 自定义模型
class Product(BaseModel):
    name:str=Field(min_length=3,max_length=10)
    desc:str=Field(max_length=100)
    price:float=Field(gt=0)
    tax:float=Field(gt=0)

# 1.验证请求体
@app.post("/product/")
def create_product(p:Annotated[Product,Form()]):
    return p

# 2.查询参数验证
@app.get("/product/")
def read_product(p:Product):
    return {"product":p}

if __name__ == '__main__':
    uvicorn.run('08Pydantic模型:app',port=8080,reload=True)